//package com.yunhe.device.service.base.impl;
//
//import com.yunhe.common.model.PageParam;
//import com.yunhe.device.domain.base.BaseVoltage;
//import com.yunhe.common.exception.ArgumentErrorException;
//import com.yunhe.common.exception.ObjectNotFoundException;
//import com.yunhe.common.exception.UniqueConstraintsException;
//import com.yunhe.device.repository.base.BaseVoltageRepository;
//import com.yunhe.device.service.base.BaseVoltageService;
//import com.yunhe.common.util.QueryUtil;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.Sort;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.List;
//import java.util.Optional;
//
///**
// * 基础电压Service
// * @desc 基础电压服务类实现
// * @author liuronglei
// */
//@Service
//public class BaseVoltageServiceImpl implements BaseVoltageService {
//    @Autowired
//    BaseVoltageRepository baseVoltageRepository;
//
//    /**
//     * 基础电压处理和判断
//     * @param baseVoltage 基础电压
//     */
//    private void processBeforeSave(BaseVoltage baseVoltage)
//            throws ArgumentErrorException, UniqueConstraintsException {
//        //判断代码是否为空
//        if (baseVoltage.getCode() == null) {
//            throw new ArgumentErrorException("代码不能为空");
//        }
//        //判断代码是否已存在
//        BaseVoltage baseVoltageByCode = this.findByCode(baseVoltage.getCode());
//        if (baseVoltageByCode != null) {
//            if (baseVoltage.getId() == null || baseVoltageByCode.getId().longValue() != baseVoltage.getId().longValue()) {
//                throw new UniqueConstraintsException("该代码已存在");
//            }
//        }
//    }
//
//    /**
//     * 新增基础电压
//     * @param baseVoltage 新增对象
//     */
//    @Override
//    @Transactional
//    public BaseVoltage createBaseVoltage(BaseVoltage baseVoltage)
//            throws ArgumentErrorException, UniqueConstraintsException {
//        baseVoltage.setId(null);
//        processBeforeSave(baseVoltage);
//        return baseVoltageRepository.save(baseVoltage);
//    }
//
//    /**
//     * 批量新增基础电压
//     * @param list 基础电压列表
//     */
//    @Override
//    @Transactional
//    public Iterable<BaseVoltage> createBaseVoltage(List<BaseVoltage> list)
//            throws ArgumentErrorException, UniqueConstraintsException {
//        for (BaseVoltage baseVoltage : list) {
//            baseVoltage.setId(null);
//            processBeforeSave(baseVoltage);
//        }
//        return baseVoltageRepository.saveAll(list);
//    }
//
//    /**
//     * 根据id删除基础电压
//     * @param baseVoltageId id
//     */
//    @Override
//    @Transactional
//    public void deleteBaseVoltage(Long baseVoltageId) {
//        baseVoltageRepository.deleteById(baseVoltageId);
//    }
//
//    /**
//     * 根据代码删除基础电压
//     * @param code 代码
//     */
//    @Override
//    @Transactional
//    public Long deleteBaseVoltageByCode(Long code) {
//        return baseVoltageRepository.deleteByCode(code);
//    }
//
//    /**
//     * 更新基础电压
//     * @param baseVoltage 要更新的基础电压对象
//     */
//    @Override
//    @Transactional
//    public BaseVoltage updateBaseVoltage(BaseVoltage baseVoltage)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException {
//        boolean exists = baseVoltage.getId() != null && baseVoltageRepository.existsById(baseVoltage.getId());
//        if (!exists) {
//            throw new ObjectNotFoundException("找不到ID为" + baseVoltage.getId() + "的基础电压");
//        }
//        processBeforeSave(baseVoltage);
//        return baseVoltageRepository.save(baseVoltage);
//    }
//
//    /**
//     * 更新基础电压
//     * @param baseVoltageId id
//     * @param code 代码
//     * @param name 名称
//     * @param nomKV 电压值（kV）
//     */
//    @Override
//    @Transactional
//    public BaseVoltage updateBaseVoltage(Long baseVoltageId,
//                                 Long code,
//                                 String name,
//                                 Double nomKV)
//            throws ArgumentErrorException, ObjectNotFoundException, UniqueConstraintsException {
//        BaseVoltage baseVoltage = this.findByBaseVoltageId(baseVoltageId);
//        if (baseVoltage == null) {
//            throw new ObjectNotFoundException("找不到ID为" + baseVoltage.getId() + "的基础电压");
//        }
//        Optional.ofNullable(code).ifPresent(baseVoltage::setCode);
//        Optional.ofNullable(name).ifPresent(baseVoltage::setName);
//        Optional.ofNullable(nomKV).ifPresent(baseVoltage::setNomKV);
//        processBeforeSave(baseVoltage);
//        return baseVoltageRepository.save(baseVoltage);
//    }
//
//    /**
//     * 根据ID获得基础电压对象
//     * @param id id
//     */
//    @Override
//    public BaseVoltage findByBaseVoltageId(Long id) {
//        return baseVoltageRepository.findById(id).orElse(null);
//    }
//
//    /**
//     * 根据代码获得基础电压对象
//     * @param code 代码
//     */
//    @Override
//    public BaseVoltage findByCode(Long code) {
//        return baseVoltageRepository.findByCode(code);
//    }
//
//    /**
//     * 获得所有基础电压对象
//     * @param pageParam 分页对象
//     */
//    @Override
//    public Iterable<BaseVoltage> findBaseVoltages(PageParam pageParam) {
//        Iterable<BaseVoltage> results;
//        if (QueryUtil.needPaging(pageParam)) {
//            results = baseVoltageRepository.findAll(QueryUtil.getPageRequest(pageParam));
//        } else {
//            Sort sort = pageParam == null ? null : QueryUtil.getSort(pageParam.getSort());
//            if (sort != null) {
//                results = baseVoltageRepository.findAll(sort);
//            } else {
//                results = baseVoltageRepository.findAll();
//            }
//        }
//        return results;
//    }
//
//}
